// 权限相关

import router from "~/router"
import { getToken } from "~/composables/auth.js"
import { toast, showFullLoading, hideFullLoading } from "~/composables/util.js"
import store from "./store"


// 全局前置守卫
router.beforeEach(async (to, from, next) => {
    //显示loading
    showFullLoading()


    const token = getToken()

    //没有登入，强制跳转回登录页
    if (!token && to.path != "/login") {
        // toast("请先登录！", "error")
        return next({ path: "/login" })
    }

    // 已登录，防止重复登入
    // 已登录的访问登录页 从哪个页面来 跳回哪个页面，否者跳到后台首页
    if (token && to.path == "/login") {
        toast("请勿重复登录！", "error")
        return next({ path: from.path ? from.path : "/" })
    }

    // 如果用户登入了，自动获取用户信息，并存储在vuex当中
    if (token) {
        await store.dispatch("getinfo")
    }

    //进入下个页面之前设置页面标题
    let title = (to.meta.title ? to.meta.title : "" )+ "-博码固定资产"
    document.title = title
    // 放行
    next()
})

// 全局后置钩子
router.afterEach((to, from) => {
    // 隐藏loading
    hideFullLoading()
})